package com.uzai.console.service.contract;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.contract.ContractSignDto;
import com.uzai.console.dto.contract.ContractSignPageVo;
import com.uzai.console.dto.contract.ContractSignQuery;
import com.uzai.console.jsonvo.contract.ContractSignAddressJson;
import com.uzai.console.vo.contract.ContractAddressVo;
import com.uzai.console.vo.contract.ContractDownLoadInfoVo;
import com.uzai.console.vo.contract.ContractSignInfoVo;
import com.uzai.console.vo.contract.ContractStatusVo;
import com.uzai.console.vo.login.LoginVo;
import org.springframework.web.servlet.view.RedirectView;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public interface SysContractService {

    /**
     * 获取合同签约状态
     * @return
     */
    ContractStatusVo getContractSignStatus(LoginVo loginVo);

    /**
     * 获取合同下载地址
     * @param contractSignDto 入参
     * @return
     */
    ContractDownLoadInfoVo getContractDownLoadUrl(ContractSignDto contractSignDto);

    /**
     * 查看合同
     * @param contractSignDto 入参
     * @return
     */
    ContractSignAddressJson getContractSignInfo(ContractSignDto contractSignDto);

    /**
     * 查看合同列表
     * @param contractSignQuery
     * @return
     */
    Page<ContractSignPageVo> findContractSignBalList(ContractSignQuery contractSignQuery);

    /**
     * 重定向并更改状态
     * @return
     */
    void updateContractAndReturn(String signFlowId, HttpServletResponse httpServletResponse) throws IOException;

}
